package classes {
	import Classes.pi_events;
	import Classes.pi_images;
	import Classes.pj_styles;
	
	import UIFree.ObjectEvent;
	import UIFree.controls.uif_imageButton;
	import UIFree.controls.uif_popupMenu;
	import UIFree.uif_ecomponent;
	import UIFree.uif_styles;
	
	import UIUtils.uif_util;
	
	import api_servers.pi_servers;
	
	import components.pj_albums;
	
	import controls.pjf_toolbar;
	
	import dialogs.timeAlerts.pi_alertTime;
	
	import editor.pi_baseToolbar;
	
	import flash.events.Event;
	import flash.geom.Rectangle;
	import flash.net.URLRequest;
	import flash.net.navigateToURL;

	
	public class pj_freeBase extends photo_inject {
		public function pj_freeBase(addrs: Array) {
			TOP = 0;
 			pi_servers.ADDR = addrs;		
 			pi_alertTime._subAccount = 989616825;	
			super();
			initialize(externalserver.vars);
		}
	
		override protected function getStyles(): uif_styles {
			return new pj_styles();
		}
		
		override protected function initDefaults(user: Object): Object {
			var _def: Object = {
				DEFAULT_MASK	: 10874,
				DEFAULT_EFFECT	: 1,
				DEFAULT_GROUP	: 21
			};
			return _def;
		}		
		
		override public function get balanceMenu(): Array {
			return [
			];
		} 
		
		override protected function serversInit(): void {
			var storageURL: String = 'http://vds-14a5.1gb.ru/';
//			var storageURL: String = 'http://storage-27811-3.cs.clodoserver.ru/';
// 			pi_servers.ADDR = ['http://game_l.ru', 'http://game_l.ru', 'http://188.127.228.242', 'http://188.127.228.242'];			
// 			pi_servers.ADDR = ['http://79.174.65.174', 'http://79.174.65.174', 'http://79.174.65.174', 'http://79.174.65.174'];			
			
			pi_servers.USERPHOTOHOST	= pi_servers.ADDR[1];
			pi_servers.UPLOADJPG_URL	= pi_servers.ADDR[1] + '/games/index_pj.php';
/*			
			pi_servers.MROOT_URL		= pi_servers.ADDR[3] + '/games/data/a/templates/';
			pi_servers.PREVIEW_URL		= pi_servers.ADDR[3] + '/games/data/a/templates/jpg_preview/';
*/			
			
			pi_servers.MROOT_URL		= storageURL + 'pj/';
			pi_servers.PREVIEW_URL		= pi_servers.MROOT_URL + 'jpg_preview/';
			
			pi_servers.IMAGESURL		= pi_servers.ADDR[3] + '/pj/images/';
			
			pi_servers.EFFECTS_URL		= pi_servers.ADDR[3] + '/pj/plugins/filters/';
		}
		
/*		override protected function extendList(): Object {
			return {
				'mobile'		: {
					id: 0,
					file: 'c_mobile.swf',
					icon: 'c_mobile.swf.png',
					caption: 'Как фон для сотового телефона',
					png_only: true
				},
				'SOUND'			: {
					id: 1,
					file: 'c_sound.swf',
					icon: 'c_sound.swf.png',
					caption: 'Добавить музыку к открытке'
				}, 
				'extends'		: {
					id: 2,
					file: 'c_extends_free.swf',
					icon: 'c_extends.swf.png',
					caption: 'Загрузить фотографию',
					load: true
				},
				'tlt'			: {
					id: 3,
					file: 'c_title.swf',
					icon: 'c_title.swf.png',
					caption: 'Добавить/изменить текст к открытке',
					png_only: true
				},
				'COR'			: {
					id: 4,
					file: 'c_correction.swf',
					load: true 
				},
				'printer'			: {
					id: 5,
					file: 'c_printer.swf',
					load: true 
				},
				'helperMulti'			: {
					id: 6,
					file: 'c_helperMulti.swf'
				}
			}
		}*/
		
		override protected function startViewCard(params: String): void {
			super.startViewCard(params);
			var inner: Rectangle = topLayer.getInner();
			new uif_imageButton(topLayer, pi_images.c_tofile, inner.x + 24, inner.y, function(e: Event): void {
				saveToJPG(cardbody);
			});
		}
		
		override protected function doReplyAsCard(): void {
			navigateToURL(new URLRequest(pi_servers.ADDR[2] + '?task=app,view'), '_self');
		}
		
		override protected function extendList(): Object {
			return {
				mobile		: {
					id: 0,
					file: 'c_mobile.swf',
					icon: 'c_mobile.swf.png',
					caption: 'Как фон для сотового телефона',
					png_only: true
				},
				tmplLoad	: {
					id: 1,
					file: 'c_tmplLoad.swf',
					icon: 'c_tmplLoad.swf.png',
					caption: 'Загрузить шаблон',
					load: true
				}, 
				'extends'	: {
					id: 2,
					file: 'c_extends_free.swf',
					icon: 'c_extends.swf.png',
					caption: 'Загрузить фотографию',
					load: true
				}, 
				elems		: {
					id: 3,
					file: 'c_elems.swf',
					icon: 'c_title.swf.png',
					caption: 'Дополнительные элементы',
					load: true
				},
				tlt			: {
					id: 4,
					file: 'c_title.swf'
				},
				COR			: {
					id: 5,
					file: 'c_correction.swf',
					load: 5 
				},
				printer			: {
					id: 6,
					file: 'c_printer.swf',
					load: 4
				},
				helperMulti			: {
					id: 7,
					file: 'c_helperMulti.swf'
				},
				adminConsol			: {
					id: 8,
					file: 'c_admin.swf'
				},
				search			: {
					id: 9,
					file: 'c_search.swf',
					load: 3
				},
				FRAMES: {
					id		: 10,
					file	: 'c_frames.swf'
				},
				VIN: {
					id		: 11,
					file	: 'c_vin.swf'
				}
			}
		}		

		override public function getClasses(): Object {
			return uif_util.union(super.getClasses(), {
				alertTime	: pi_alertTime,
				popupMenu	: uif_popupMenu,
				data		: pi_data
			});
		}
		
		override protected function createSiteData(): Object {
			var obj: Object = {
				INVITEDESC: '<b>10 руб. на ваш счет</b> за каждого друга, установившего приложение по вашему приглашению.',
				CURRENCY: 'руб.',
				PAYCARDDESC: pi_data.ORDERDESC + '\n<b>Стоимость этой открытки %s руб. будет снята с вашего счета.</b>\nНажмите кнопку "ок" если вы подтверждаете покупку.',
				SMALLBALANCE: '<font color="#FF0000"><b>На вашем счету недостаточно средств.</b></font>\nДля текущей операции требуется %s1 руб., ваш текущий баланс %s2 руб.\nНажмите кнопку "ок", если вы хотите пополнить свой счет в приложении.',
				ad: {
					ref_id: '451859761',
					asMail: true
				},
				NORESPONSEIMAGEDATA: 'Нет изображения'
			}
			obj.NULLBALANCEDESC = '';
			return obj;
		}
		
/*		
		override public function initLayers(count: int): void {
			_layers = new Array();
			for (var i: int = 0; i<count; i++)
				_layers.push(new uif_ecomponent(this, 0, 0, APPWIDTH, APPHEIGHT));
		}
*/		
		
		override protected function albumsPrepare(uid: String, a_albums: Array): Array {
			for each (var album: Object in a_albums) {
				album.smallTitle = Utils.ll(album.title?album.title:album.created, 16);		
			}
			return a_albums;
		}
		
		override protected function sd_balance(data:*): void {
			if (data.balance) dispatchEvent(new ObjectEvent(pi_events.CHANGEBALANCE, data.balance));
		}
		
		override protected function createToolbar(): pi_baseToolbar {
			return new pjf_toolbar(_layers[2], 556);
		}
		
/*		override protected function startViewCard(params: String): void {
			super.startViewCard(params);
			var inner: Rectangle = getInner();
			var createButton: pj_button = new pj_button(topLayer, inner.x, inner.y, 157, 'Создать открытку', function(e: Event): void {
				createButton.dispose();
				fullScreen.dispose();
				initEditor();
			});
		}*/
		
		override protected function afterLoadAlbums(uid: String, a_albums: Array): void {
			var list: Array = albumsPrepare(uid, a_albums);
			if (list.length > 0) {
				if (!_albums) _albums = new pj_albums(_layers[0], list, 0, 780, APPWIDTH, 100, 'tabBox');
				else _albums.assignAlbums(uid, list);
			}
		}
		
		override public function sendCard(): void {
//			this.manager.requestSend([]);
		}
	}
}